package edzest.basic;

import java.util.Scanner;

import edzest.model.SungJukVO;
import edzest.service.ArraySungJuk;

public class J17_SungJuk_v5b {
	
	private static final String title = "배열을 이용한 성적프로그램";
	private static final String menu = ">>> 추가 (1) 조회 (2) 종료 (0)";
	private static final String addmsg = "이름, 국어, 영어, 수학 순으로 입력하세요";
	// 이 필드가 static이 아니면 main에서 객체생성 후 사용해야 됨
	// static이라 객체생성없이 바로 사용
	
	public static void main(String[] args) {
		// J17_SungJuk_v5의 개선판
		// J17_SungJuk_v5은 무조건 입력을 해야지 조회할 수 있는데
		// 이건 입력 조회 자유롭게 할 수 있음
		ArraySungJuk sjsrv = new ArraySungJuk();
		Scanner sc = new Scanner(System.in);
		
		while(true){
			System.out.println( title ); 
			// title필드가 static이 아닐 경우
			// Cannot make a static reference to the non-static field title
			System.out.println( menu );
			switch( sc.nextInt() ){
				case 0: sc.close(); 
					System.exit(0); 
					// 프로그램 종료, 이거 없이 0치면 
					// java.lang.IllegalStateException: Scanner closed
					break;
				case 1: addSungJuk(sc, sjsrv);
					break;
				case 2: showSungJuk(sjsrv); 
					break;
			}
		}
		
	}
	
	public static void addSungJuk( Scanner sc, ArraySungJuk sjsrv ) {
		System.out.println( addmsg );
		SungJukVO sj = new SungJukVO(sc.next(), 
				sc.nextInt(), sc.nextInt(), sc.nextInt());
		
		// 입력받은 데이터를 배열에 저장
		sjsrv.newSungJuk(sj);
	} // 성적데이터 입력받아 배열에 저장
	
	public static void showSungJuk( ArraySungJuk sjsrv ){
		System.out.println( sjsrv.readSungJuk() );
	} // 배열에 저장된 성적데이터 모두 출력

}
